home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
mtwindow.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
6KB
|
150 lines
(*----------------------------------------------------------------------*
* *
* MAGICTOOLS Modula's All purpose GEM Interface Cadre Toolbox *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus, sowie die *
* Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
* oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail- *
* boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen *
* Einverstndnisserklrung des Autors. *
* *
* Die Verbreitung des Moduls als Teil eines gelinkten Programms ist *
* fr Lizenznehmer ausdrcklich erlaubt! Der Autor behlt sich das *
* Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
* widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* mtWindows Windowhandling *
*----------------------------------------------------------------------*)
DEFINITION MODULE mtWindows;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
FROM mtTerminal IMPORT TERMINAL;
PROCEDURE NewWindow (elements: sBITSET; REF name, info: ARRAY OF CHAR;
VAR win: sINTEGER): BOOLEAN;
(* Reserviert Speicher fr das Fenster und berechnet maximale Koordinaten *)
PROCEDURE DeleteWindow (VAR win: sINTEGER);
(* Gibt den vom Fenster belegten Speicher wieder frei. Ein geffnetes Fenster
* wird dabei wieder geschlossen
*)
PROCEDURE MaxWorkarea (win: sINTEGER; VAR rect: ARRAY OF LOC);
(* Liefert die maximale Arbeitsflche eines Fensters *)
PROCEDURE CalcWorkarea (win: sINTEGER; VAR rect: ARRAY OF LOC);
(* Berechnet die Arbeitsflche eines geffneten Fensters. *)
PROCEDURE OpenWindow (win: sINTEGER; rect: ARRAY OF LOC);
(* ffnet ein zuvor mit WindowCreate definiertes Fenster.
* rect (x, y, w und h) beschreiben den Arbeitsbereich des Fensters.
*)
PROCEDURE CloseWindow (win: sINTEGER);
(* Schliet das Fenster. *)
PROCEDURE CloseWindows;
(* Schliet alle von diesem Modul geffneten Fenster *)
PROCEDURE DeleteWindows;
(* Lscht alle von diesem Modul geffneten Fenster. Ist ein Fenster noch
* geffnet, wird es vorher geschlossen.
*)
PROCEDURE OwnWindow (win: sINTEGER): BOOLEAN;
(* TRUE, wenn das Fenster ber dieses Modul geffnet wurde *)
PROCEDURE WindowTop (win: sINTEGER);
PROCEDURE TopWindow (): sINTEGER;
(* Macht Fenster zum TOP-Window bzw. liefert das oberste Fenster *)
PROCEDURE WindowFulled (win: sINTEGER);
(* Bringt Fenster in die grtmgliche Ausdehnung *)
PROCEDURE WindowPos (win: sINTEGER; x, y: sINTEGER);
(* Plaziert das Fenster an Position *)
PROCEDURE WindowSize (win: sINTEGER; w, h: sINTEGER);
(* Dimensioniert das Fenster mit Breite w und Hhe h *)
PROCEDURE WindowName (win: sINTEGER; REF name: ARRAY OF CHAR);
(* Setzt den Namen des Fensters *)
PROCEDURE WindowInfo (win: sINTEGER; REF info: ARRAY OF CHAR);
(* Setzt die Infozeile des Fensters *)
CONST VSlider = 0;
HSlider = 1;
PROCEDURE WindowSlider (win, which, max, act, fpos: sINTEGER);
(* Setzt den vertikalen bzw. horizontalen Slider.
* max ist die Gesamtanzahl der Zeilen/Spalten, act ist die Zahl der
* Zeilen/Spalten im Fenster, fpos ist die erste Zeile/Spalte des Dokuments
* im Fenster.
*
* Beispiel:
*
* max = 1500 Der anzuzeigende Text hat 1500 Zeilen
* act = 25 Anzahl der Zeilen im Fenster
* fpos = 786 Erste Zeile des Textes im Fenster
*
* Die Routine berechnet die Gre und Position des Sliders und setzt ihn
* entsprechend den ermittelten Werten. Dabei wird nur gesetzt, wenn der
* Slider nicht schon diese Gre hat.
*
*)
PROCEDURE GetElements (win: sINTEGER; VAR elements: sBITSET;
VAR vsize, vpos, hsize, hpos: sINTEGER;
VAR name, info: ARRAY OF CHAR);
(* Liefert die Fenster-Elemente *)
PROCEDURE ConnectTerminal (win: sINTEGER; term: TERMINAL);
(* Hier kann ein Terminal aus mtTerminal bergeben werden.
* Alle Gren- und Positionsnderungen des Fensters werden dann automatisch
* auf das Terminal bertragen.
*)
PROCEDURE WindowTerminal (win: sINTEGER): TERMINAL;
(* Liefert - sofern ein TERMINAL ans Fenster gebunden ist - das zum Fenster
* gehrende TERMINAL.
*)
CONST FIRSTRECT = 0;
NEXTRECT = 1;
PROCEDURE RectList (win: sINTEGER; flag: sINTEGER;
VAR rect: ARRAY OF LOC): BOOLEAN;
(* Klappert die Rechteckliste fr ein WINDOW ab. TRUE, wenn das Rechteck
* gltig, FALSE wenn ungltig.
*)
PROCEDURE RcIntersect (VAR rect1, rect2: ARRAY OF LOC): BOOLEAN;
(* Prft ob sich die Rechtecke rect1 und rect2 schneiden. TRUE wenn dies
* der Fall ist. Die Schnittflche ist dann in rect2
*)
PROCEDURE UseGraphics (use: BOOLEAN);
(* wenn TRUE wird der bliche Grafik-Zinnober gemacht. Default ist TRUE *)
END mtWindows.